home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / ldapjdk.jar / netscape / ldap / controls / LDAPPersistSearchControl.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-13  |  2.8 KB  |  110 lines

  1. package netscape.ldap.controls;
  2.  
  3. import java.io.ByteArrayInputStream;
  4. import netscape.ldap.LDAPControl;
  5. import netscape.ldap.ber.stream.BERBoolean;
  6. import netscape.ldap.ber.stream.BERConstruct;
  7. import netscape.ldap.ber.stream.BERElement;
  8. import netscape.ldap.ber.stream.BEREnumerated;
  9. import netscape.ldap.ber.stream.BERInteger;
  10. import netscape.ldap.ber.stream.BERIntegral;
  11. import netscape.ldap.ber.stream.BEROctetString;
  12. import netscape.ldap.ber.stream.BERSequence;
  13. import netscape.ldap.client.JDAPBERTagDecoder;
  14.  
  15. public class LDAPPersistSearchControl extends LDAPControl {
  16.    private int m_changeTypes = 1;
  17.    private boolean m_changesOnly = false;
  18.    private boolean m_returnECs = false;
  19.    public static final int ADD = 1;
  20.    public static final int DELETE = 2;
  21.    public static final int MODIFY = 4;
  22.    public static final int MODDN = 8;
  23.    public static final String PERSISTENTSEARCH = "2.16.840.1.113730.3.4.3";
  24.  
  25.    public LDAPPersistSearchControl() {
  26.       super("2.16.840.1.113730.3.4.3", true, (byte[])null);
  27.    }
  28.  
  29.    public LDAPPersistSearchControl(int var1, boolean var2, boolean var3, boolean var4) {
  30.       super("2.16.840.1.113730.3.4.3", var4, (byte[])null);
  31.       super.m_value = this.createPersistSearchSpecification(var1, var2, var3);
  32.    }
  33.  
  34.    public int getChangeTypes() {
  35.       return this.m_changeTypes;
  36.    }
  37.  
  38.    public boolean getChangesOnly() {
  39.       return this.m_changesOnly;
  40.    }
  41.  
  42.    public boolean getReturnControls() {
  43.       return this.m_returnECs;
  44.    }
  45.  
  46.    public void setChangeTypes(int var1) {
  47.       this.m_changeTypes = var1;
  48.    }
  49.  
  50.    public void setChangesOnly(boolean var1) {
  51.       this.m_changesOnly = var1;
  52.    }
  53.  
  54.    public void setReturnControls(boolean var1) {
  55.       this.m_returnECs = var1;
  56.    }
  57.  
  58.    public LDAPEntryChangeControl parseResponse(byte[] var1) {
  59.       LDAPEntryChangeControl var2 = new LDAPEntryChangeControl();
  60.       ByteArrayInputStream var3 = new ByteArrayInputStream(var1);
  61.       new BERSequence();
  62.       JDAPBERTagDecoder var4 = new JDAPBERTagDecoder();
  63.       int[] var5 = new int[]{0};
  64.  
  65.       try {
  66.          BERSequence var6 = (BERSequence)BERElement.getElement(var4, var3, var5);
  67.          BEREnumerated var7 = (BEREnumerated)((BERConstruct)var6).elementAt(0);
  68.          var2.setChangeType(((BERIntegral)var7).getValue());
  69.          if (((BERConstruct)var6).size() > 1) {
  70.             if (((BERConstruct)var6).elementAt(1) instanceof BEROctetString) {
  71.                BEROctetString var8 = (BEROctetString)((BERConstruct)var6).elementAt(1);
  72.                var2.setPreviousDN(new String(var8.getValue(), "UTF8"));
  73.             } else if (((BERConstruct)var6).elementAt(1) instanceof BERInteger) {
  74.                BERInteger var10 = (BERInteger)((BERConstruct)var6).elementAt(1);
  75.                var2.setChangeNumber(((BERIntegral)var10).getValue());
  76.             }
  77.          }
  78.  
  79.          if (((BERConstruct)var6).size() > 2) {
  80.             BERInteger var11 = (BERInteger)((BERConstruct)var6).elementAt(2);
  81.             var2.setChangeNumber(((BERIntegral)var11).getValue());
  82.          }
  83.  
  84.          return var2;
  85.       } catch (Throwable var9) {
  86.          return null;
  87.       }
  88.    }
  89.  
  90.    public static LDAPEntryChangeControl parseResponse(LDAPControl[] var0) {
  91.       LDAPPersistSearchControl var1 = new LDAPPersistSearchControl();
  92.  
  93.       for(int var2 = 0; var0 != null && var2 < var0.length; ++var2) {
  94.          if (var0[var2].getID().equals("2.16.840.1.113730.3.4.7")) {
  95.             return var1.parseResponse(var0[var2].getValue());
  96.          }
  97.       }
  98.  
  99.       return null;
  100.    }
  101.  
  102.    private byte[] createPersistSearchSpecification(int var1, boolean var2, boolean var3) {
  103.       BERSequence var4 = new BERSequence();
  104.       ((BERConstruct)var4).addElement(new BERInteger(var1));
  105.       ((BERConstruct)var4).addElement(new BERBoolean(var2));
  106.       ((BERConstruct)var4).addElement(new BERBoolean(var3));
  107.       return ((LDAPControl)this).flattenBER(var4);
  108.    }
  109. }
  110.